#pragma once

// Copyright (c) 2010 Manuel Peinado Gallego <manuel.peinado@gmail.com>
// Distributed under the MIT license


#include "Geometry.h"
#include "Ref.h"


class Primitive : public Geometry
{
public:
};


class Cube : public Primitive
{
public:
    void draw(View3d * view) const override;
    ref<Geometry> clone() const override;
    AABB getAABB() const override;
};

class SphereShape : public Primitive
{
public:
    
    void draw(View3d * view) const override;
    ref<Geometry> clone() const override; 

    AABB getAABB() const override;
};


class CylinderShape : public Primitive
{
public:
    // TODO put this on CPP file
    void draw(View3d * view) const override;
    ref<Geometry> clone() const override;

    AABB getAABB() const override;
};
